package com.xiangge.preview;

import java.util.Random;
import java.util.Scanner;

public class PreviewDemo {
    public static void main(String[] args) {
        /*已知珠穆朗玛峰的高度为8848.88米，一张纸的厚度为：0.01米（纸无限大），
        每将纸折一次厚度变为原来的2倍，请问需要折多少次,纸的厚度可以达到或者超过珠穆朗玛峰的高度？*/
    // 定义一个double类型的整数变量
    double i = 0.01;
    // 定义一个int类型的统计count
    int count = 0;
    // 使用while循环
    while (i <= 884800){
        i = i * 2;
        count++;
    }
    System.out.println("总共折了" + count + "次");
}
    public static void main4(String[] args) {
        /*随机生成一个100以内的正整数，猜数字游戏从键盘输入数，
        如果大了提示，大了，如果小了，提示小了，如果对了，就不再猜了，
        并统计一共猜了多少次*/
        // 使用Random自动生成一个对象，在1-100之间
        Random random = new Random();
        int num = random.nextInt(100) + 1;
        // 创建键盘录入
        Scanner input = new Scanner(System.in);

        // 定义一个int类型变量，来控制猜测次数
        int count = 0;
        // 不知道要猜多少次，是死循环，用while（true）
        while (true){
            // 猜测数字
            System.out.println("请输入猜测数字【1-100】：");
            int guess = input.nextInt();
            // 使用if多选结构判断
            if (guess > num){
                System.out.println("猜大了");
            }else if (guess < num){
                System.out.println("猜小了");
            }else {
                System.out.println("猜对了");
                break; // 当情况正确的时候结束，跳出循环
            }
            // break如果在这里，那while循环之中的if条件判断只会执行一次就结束
            count++;
            if (count == 3){
                System.out.println("机会用光了");
                break;
            }
        }
    }
    public static void main3(String[] args) {
        /*从键盘输入整数，输入0结束，统计输入的正数、负数的个数。*/
        // 创建Scanner对象
        Scanner input = new Scanner(System.in);
        // 有统计次数，再创建一个int类型的变量
        int count1 = 0, count2 = 0;
        // 因为有结束条件，所以录入是不断循环的且不知道次数，用while(true)循环
        while (true){
            System.out.println("请输入一个整数：");
            int num = input.nextInt();
            // 设置结束条件
            if (num == 0){
                System.out.println("输入结束");
                break;
            }// 设置正数和负数的统计
            else if (num < 0){
                count1++;
            }else {
                count2++;
            }
        }
        System.out.println("正数有" + count2 + "个" + "\n" + "负数有" + count1 + "个");
    }
    public static void main2(String[] args) {
        /*	求1-100的整数中能同时被3和5整除的数的和*/
        // 定义int类型的变量
        int sum = 0;
        // 使用for循环
        for (int i = 1; i <= 100; i++) {
            // 使用if判断语句来判断哪些数会同时被3和5整除
            if (i % 3 == 0 && i % 5 == 0){
                sum += i;
            }
        }
        System.out.println("sum = " + sum);

    }
    public static void main1(String[] args) {
        // 定义一个长度为5的数组
        int[] arr = new int[5];
        // 使用for循环，将产生的随机数放入数组中
        for (int i = 0; i < arr.length; i++) {
            // 创建Random方法，产生随机数
            int r = new Random().nextInt(100);
            arr[i] = r;
        }
        // 定义int类型的变量
        int min = 100, max = 0;
        // 将元素更改后的数组再进行for循环，遍历数组进行判断
        for (int i = 0; i < arr.length; i++) {
            // 使用if的循环语句进行判断
            if (max < arr[i]){
                max = arr[i];
            }else if (min > arr[i]){
                min = arr[i];
            }
        }
        System.out.println("最大值为：" + max + "\n" + "最小值为：" + min);
    }
}
